/**
 * Copyright (C) 2012 The SkyTvOS Project
 * <p/>
 * Version     Date           Author
 * ─────────────────────────────────────
 * 2014年12月23日         Root.Lu
 */

package com.coocaa.launcher.framework.launcherhost;

import android.view.animation.Animation;

import com.coocaa.launcher.framework.launcherhost.LauncherHostView.LauncherHostPageView;

/**
 * TODO pageview边缘事件，由具体的hostcontroller来创建回调给hostview
 *
 * @author lu
 * @version 2014年12月23日
 * @see 参考转向，也就是相关主题
 */
public class LauncherHostViewBoundaryEvent {
    /**
     * TODO 处理边界事件，现在只有 hostview实现了这个接口
     *
     * @author lu
     * @version 2014年12月23日
     * @see com.coocaa.launcher.framework.launcherhost.LauncherHostView
     */
    public interface IHostViewBoundaryEventHandler {
        /**
         * TODO 产生了边界事件
         *
         * @param event    具体的边界事件
         * @param listener 监听边界事件处理结果的回调
         * @return void
         * @author lu
         * @version 2014年12月23日 以修改时间为准
         * @see com.coocaa.launcher.framework.launcherhost.LauncherHostView
         */
        void onHostViewBoundaryEvent(LauncherHostViewBoundaryEvent event,
                                     IHostViewBoundaryEventListener listener);
    }

    /**
     * TODO 监听边界事件处理结果的监听器
     *
     * @author lu
     * @version 2014年12月23日
     * @see com.coocaa.launcher.framework.launcherhost.LauncherHostViewBoundaryEvent.IHostViewBoundaryEventListener
     */
    public interface IHostViewBoundaryEventListener {
        /**
         * TODO 监听边界处理结果
         *
         * @param event 某一个边界事件处理完成
         * @return void
         * @author lu
         * @version 2014年12月23日 以修改时间为准
         * @see
         */
        void onHostViewBoundaryEventComplete(LauncherHostViewBoundaryEvent event);

        void onHostViewBoundaryEventCompleteFailed(LauncherHostViewBoundaryEvent event);
    }

    public static final int FLAG_LIVE_BLUR_IN = 1 << 1;
    public static final int FLAG_LIVE_BLUR_OUT = 1 << 2;

    private LauncherHostPageView view = null;
    private Animation inAnimation = null, outAnimation = null;
    private Object object = null;
    private int flag = 0;

    public LauncherHostPageView getToLauncherHostPageView() {
        return view;
    }

    public int getFlag() {
        return flag;
    }

    public void setFlag(int flag) {
        this.flag = flag;
    }

    public Animation getInAnimation() {
        return inAnimation;
    }

    public void setInAnimation(Animation inAnimation) {
        this.inAnimation = inAnimation;
    }

    public Animation getOutAnimation() {
        return outAnimation;
    }

    public void setOutAnimation(Animation outAnimation) {
        this.outAnimation = outAnimation;
    }

    public void setToLauncherHostPageView(LauncherHostPageView view) {
        this.view = view;
    }

    public Object getObject() {
        return object;
    }

    public void setObject(Object object) {
        this.object = object;
    }
}
